#pragma once
/*
	App Summary: Contains a working example of drawing a model and using a shader
*/
// Game Includes
#include "NeroGame\Nero.h"
// DirectX Includes
#include "DirectX\DirectX11.h"
//
#include "Triangle.h"

class TriangleApp : public Game::NGame
{
	enum State
	{
		No_State,
		Color_State,
		Texture_State,
		Light_State,
		NumberOf_State
	};
private:
	RTTI_DECLARATIONS(TriangleApp, Game::NGame)
public:
	TriangleApp(void);
	virtual ~TriangleApp(void);
	virtual void Initialize(const std::string& scene);
	virtual void Deinitialize();
	virtual void Update(float gameTime);
	virtual void Render();
	virtual void EndGame();
	virtual void SetState(State state){ mCurrentState = state; }
private:
	Graphics::ColorShader* mColorShader;
	Graphics::TextureShader* mTextureShader;
	Graphics::LightShader* mLightShader;
	State mCurrentState;
	Triangle* mTriangle;
	Graphics::Light* mLight;

	static TriangleApp s_instance;
};